package com.ygy.utils;

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import java.util.Date;
import java.util.Map;

import java.util.Date;
import java.util.Map;
/**
        * @className: JwtUtil
        * @author: Ye
        * @描述: 对请求携带的信息进行了编码和签名以确保其完整性、不可篡改以及可以被验证，用于登陆操作后进行身份识别
        * @date: 2024/3/11 13:53
        * @version: 1.0
        */
//用于登陆操作后进行身份识别
public class JwtUtil {
    private static  final String KEY = "Yan";

    //接收业务数据，生成token并返回
    public static String genTonken(Map<String,Object> claims){
        //生成JWT代码
        return JWT.create()
                .withClaim("claims", claims)//添加载荷
                .withExpiresAt(new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 24))//添加过期时间
                .sign(Algorithm.HMAC256(KEY));//指定算法，配置密钥
    }
    public static Map<String,Object> parseToken(String token){
        return JWT.require(Algorithm.HMAC256(KEY))
                .build()
                .verify(token)
                .getClaim("claims")
                .asMap();

    }}
